Method and apparatus for uniform lineal motion blur estimation using multiple exposures

ABSTRACT

A method and apparatus ( 9 ) for estimating the blur parameters of blurred images (g 1 , g 2 ) are disclosed. The apparatus ( 9 ) has one or more image sensors ( 10 ) for capturing the blurred images (g 1 , g 2 ), a plurality of correlators ( 20, 30 ) for performing autocorrelation of the blurred image (g 1 ) and cross-correlation between the two images (g 1 , g 2 ) respectively, and an error function calculator ( 40 ) for evaluating an error function over all possible displacements using the results from the correlators ( 20, 30 ). The apparatus ( 9 ) further includes an extreme locater ( 50 ) for finding the displacement with the minimum value for the error function.

TECHNICAL FIELD OF THE INVENTION

[0001] The present invention relates generally to image processing and, in particular, to a method and apparatus for estimating motion from image blur. An image sensor with a capability to capture multiple concurrent (overlapping in time) images which forms part of a system used to estimate a uniform lineal motion using error minimisation is also disclosed.

BACKGROUND ART

[0002] Motion estimation is a useful tool in many aspects of image processing. Motion estimation is used in video compression (for example MPEG2). Motion estimation is also useful in identifying those portions of an image that may require updating on a display. Motion estimation further permits various portions of an image to have assigned to them motion vectors, for example as metadata, that are interpretable to provide for enhanced image processing. Motion detection may also be used for object tracking and content analysis and many other computer vision applications.

[0003] Known arrangements for performing motion estimation of video images typically use one of the following methods:

[0004] (i) estimation of illumination partial derivatives in combination with optical flow;

[0005] (ii) local (block based) calculation of a cross-correlation between successive images and using maxima to estimate the shift between images; or

[0006] (iii) estimation of the motion blur in any one image (using a variety of methods such as blind de-convolution, maximum likelihood estimation etc) to then use as a motion vector in optical flow.

[0007] One deficiency of existing motion estimation arrangements is that they operate between adjacent frames of an image sequence, or between odd and even fields of an interlaced image within such a sequence, As a consequence, known arrangements are limited to the image sampling rate either as frames or fields. However, motion may yet occur during the sampling of, or between, such frames or fields. Known arrangements also lack fine resolution of the magnitude of motion. For high quality reproduction, which includes consideration of issues such as storage efficiency, such motion is desired to be considered.

DISCLOSURE OF THE INVENTION

[0008] It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.

[0009] According to a first aspect of the invention, there is provided a method of estimating motion of a moving object, said method comprising the steps of:

[0010] capturing at least first and second blurred images of said moving object, the blur in said images arising from at least motion blur of said object, wherein exposure durations of said first and second blurred images overlap at least partially;

[0011] generating an error function, said error function being a function of said first blurred image and said second blurred image;

[0012] minimising said error function; and

[0013] estimating said motion of said object from said minimised error function.

[0014] According to a second aspect of the invention, there is provided an apparatus for estimating motion of a moving object, said apparatus comprising;

[0015] one or more capture devices for capturing at least first and second blurred images of said moving object, the blur in said blurred images arising from at least motion blur of said object, wherein exposure durations of said blurred images overlap at least partially;

[0016] means for generating an error function, said error function being a function of said first blurred image and said second blurred image;

[0017] means for minimising said error function; and

[0018] means for estimating said motion of said object from said minimised error function.

[0019] According to another aspect of the invention, there is provided an apparatus for estimating motion of a moving image, said apparatus comprising:

[0020] an image sensor for capturing pixels of at least first and second images in which one of said images is sampled during a formation of at least one other of said images;

[0021] means for comparing said images to determine at least one motion vector for association with one of said images.

[0022] Other aspects of the invention are also disclosed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0023] A number of embodiments of the present invention will now be described with reference to the drawings, in which:

[0024]FIG. 1 shows blur functions b₁ and b₂ representing lineal (motion) blur of spatial extent 2a₁ and 2a₂ respectively occurring in a direction at angle θ to the x axis;

[0025]FIGS. 2A and 2B illustrate the x′ component of the respective blur functions b₁ and b₂, resulting from two sequential, non-overlapping, uniform exposures with equal duration;

[0026]FIGS. 3A and 3B illustrate the x′ component of the respective blur functions b₁ and b₂, resulting from two uniform exposures centred on the same time but one exposure twice the duration of the other;

[0027]FIGS. 4A and 4B illustrate the x′ component of the respective blur functions b₁ and b₂, resulting from two uniform exposures with the same start times, but with the one exposure twice the duration of the other;

[0028]FIGS. 5A and 5B illustrate the x′ components of the respective blur functions b₁ and b₂ resulting from two uniform exposures centred on the same time, but with the one exposure three times the duration of the other;

[0029]FIGS. 6A and 6B illustrate the x′ components of the respective blur functions b₁ and b₂ resulting from two non-uniform exposures centred on the same time, but with the one exposure twice the duration of the other;

[0030]FIGS. 7A and 7B illustrate the x′ component of the respective blur functions b₁(−x′) and b₁(−x′)−2b₂(x′), resulting from a linear combination of b₁ and b₂;

[0031]FIG. 8 is a schematic block diagram of an apparatus for blur estimation;

[0032]FIG. 9 is a schematic block diagram of a structure of a CMOS sensor that may be used to capture blurred images g₁ and g₂;

[0033]FIG. 10 is a timing sequence to be used with the CMOS sensor of FIG. 9 to capture the two overlapping blurred images g₁ and g₂;

[0034]FIG. 11 is a schematic block diagram of an embodiment of a correlator that may be used in the apparatus of FIG. 8 for blur estimation;

[0035]FIG. 12 is a schematic block diagram of another embodiment of a correlator that may be used in the apparatus of FIG. 8 for blur estimation;

[0036]FIG. 13 is a schematic block diagram of an embodiment of a extreme locater that may be used in the apparatus of FIG. 8 for blur estimation;

[0037]FIGS. 14A to 14E provide comparisons between image capture according to prior art arrangements and those according to embodiments of the present invention; and

[0038]FIGS. 15 and 16 depict capture devices according to embodiments of the invention;

[0039]FIG. 17 is a schematic block diagram of a general purpose computer.

DETAILED DESCRIPTION INCLUDING BEST MODE

[0040] Consider an ideal two-dimensional digital image signal, represented as a function f(x,y), where x and y are the horizontal and vertical image coordinates. The image signal f(x,y) is defined for all integer values of x and y, and undefined for all non-integer values of x and y. The digital image signal f(x,y) is typically obtained by sampling an analog image, for instance, an image on film.

[0041] In practice, this ideal image signal f(x,y) is distorted by various image degradations. In this specification, image blurring is considered as well as additive noise. The image blurring to be considered is a special form of blur, namely uniform lineal blur typically caused by motion in a plane at an oblique angle to a line of sight of a camera used for capturing the image. The blurred image is represented as g₁. In the preferred implementation, two different blurred images are used, namely g₁ and g₂.

[0042] The blurred images g₁ and g₂ can be represented as the result of a pair of blur functions b₁ and b₂ operating on the image signal f(x,y). The blurred images g₁ and g₂ can therefore be represented using the convolution (*) operator as:

g ₁(x,y)=f(x,y)*b ₁(x,y)+n ₁(x,y)   (1)

g ₂(x,y)=f(x,y)*b ₂(x,y)+n ₂(x,y)   (2)

[0043] where n₁ and n₂ are additive noise signals.

[0044] An assumption is made that the motion is lineal and uniform over the image region under consideration. The blur functions b₁ and b₂ represent one dimensional (motion) blur of spatial extent 2a₁ and 2a₂ respectively occurring in a direction at angle θ to the x axis as illustrated in FIG. 1. Consequently the blur functions b₁ and b₂ can be represented as follows: $\begin{matrix} {{b_{1}\left( {x,y} \right)} = {\frac{1}{2a_{1}}{{{rect}\left( \frac{x^{\prime}}{2a_{1}} \right)} \cdot {\delta \left( y^{\prime} \right)}}}} & (3) \\ {{b_{2}\left( {x,y} \right)} = {\frac{1}{2a_{2}}{{{rect}\left( \frac{x^{\prime} - x_{0}^{\prime}}{2a_{2}} \right)} \cdot {\delta \left( {y^{\prime} - y_{0}^{\prime}} \right)}}}} & (4) \end{matrix}$

[0045] wherein $\begin{matrix} {{{{{rect}\left( \frac{p}{2s} \right)} = {{0\quad {for}\quad p} > s}},{or}}{{{1\quad {for}\quad {p}} < s},{and}}} & (5) \end{matrix}$

[0046] δ(p) is the Dirac delta function such that: $\begin{matrix} {{\int_{\infty}^{\infty}{{{f(x)} \cdot {\delta \left( {x - x_{0}} \right)}}\quad {x}}} = {f\left( x_{0} \right)}} & (6) \end{matrix}$

[0047] wherein f is any function. (x′, y′) are rotated coordinates having the following relations:

x′=+xcos(θ)+ysin(θ)

y′=−xsin(θ)+ycos(θ)   (7)

[0048] As will be apparent from FIG. 1, the rotated coordinates have one coordinate aligned with the direction of blur. The centre of the second blur function b₂ is offset by an amount (x₀, y₀) from the centre of the first blur function b₁. In essence, the blur functions b₁ and b₂ convert all point intensities of the image signal f(x,y) into linear smears of length directly proportional to the respective exposure times and the image velocity.

[0049] The two dimensional Fourier transform G(u,v) of an arbitrary signal g(x,y) is defined as: $\begin{matrix} {{G\left( {u,v} \right)} = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{g\left( {x,y} \right)}{\exp \left( {{- 2}{\pi \left\lbrack {{ux} + {vy}} \right\rbrack}} \right)}\quad {x}\quad {y}}}}} & (8) \end{matrix}$

[0050] where u and v are the spatial frequency coordinates. Consequently, the transforms G₁ and G₂ of the blurred images g₁ and g₂ can be written as:

G ₁(u,v)=F(u,v).B ₁(u,v)+N ₁(u,v)   (9)

G ₂(u,v)=F(u,v).B ₂(u,v)+N ₂(u,v)   (10)

[0051] The discrete Fourier transforms B₁ and B₂ of the blur functions b₁ and b₂ have a simple (one dimensional) form when expressed in relation to rotated frequency axes, namely: $\begin{matrix} \left. \begin{matrix} {u^{\prime} = {{{+ u}\quad {\cos (\theta)}} + {v\quad \sin \quad (\theta)}}} \\ {v^{\prime} = {{{- u}\quad \sin \quad (\theta)} + {v\quad \cos \quad (\theta)}}} \end{matrix} \right\} & (11) \\ {{B_{1}\left( {u,v} \right)} = \frac{\sin \left( {2\quad \pi \quad u^{\prime}a_{1}} \right)}{2\quad \pi \quad u^{\prime}a_{1}}} & (12) \\ {{B_{2}\left( {u,v} \right)} = {{\frac{\sin \quad \left( {2\pi \quad u^{\prime}a_{2}} \right)}{2\pi \quad u^{\prime}a_{2}} \cdot \exp}\quad \left( {{- 2}{\pi \quad\left\lbrack {u^{\prime}x_{0}^{\prime}} \right\rbrack}} \right)}} & (13) \end{matrix}$

[0052] From Equations (9), (10), (12) and (13), the blurred image transforms G₁ and G₂ can be rewritten as: $\begin{matrix} {{G_{1}\left( {u,v} \right)} = {{F\left( {u,v} \right)} \cdot \frac{\sin \left( {2\pi \quad u^{\prime}a_{1}} \right)}{2\pi \quad u^{\prime}a_{1}}}} & (14) \\ {{G_{2}\left( {u,v} \right)} = {{{F\left( {u,v} \right)} \cdot \frac{\sin \left( {2\pi \quad u^{\prime}a_{2}} \right)}{2\pi \quad u^{\prime}a_{2}} \cdot {\exp \left( {{- 2}{\pi \left\lbrack {u^{\prime}x_{0}^{\prime}} \right\rbrack}} \right)}} + N}} & (15) \end{matrix}$

[0053] For simplification, the additive noise spectra terms N₁ and N₂ in Equations (9) and (10) have been substituted by a single noise spectrum term N in Equation (15). From the two blurred images g₁ and g₂, two equations and four “unknowns” (viz the function F(u,v), as well as the parameters a₁, a₂, and x′₀) are derived. By constraining the parameters a₁, a₂, and x′₀, the unknowns can be reduced to two, and a unique solution thus exists for the simultaneous Equations (14) and (15).

[0054] The above deduction can be performed upon two or more images. Implementations using two images include:

[0055] (a) sequential, non-overlapping, uniform exposures with equal duration, as ilustrated in FIGS. 2A and 2B;

[0056] (b) both uniform exposures centred on the same time but one exposure twice the duration of the other, as illustrated in FIGS. 3A and 3B;

[0057] (c) overlapping, uniform exposures with the same start time and one duration twice the other, as illustrated in FIGS. 4A and 4B;

[0058] (d) variations of (b) and (c) with integer exposure multiples greater than two, an example of which is illustrated in FIGS. 5A and 5B where one duration is three times that of the other; and

[0059] (e) variations of (b) and (c) with non-uniform exposures, an example of which is illustrated in FIGS. 6A and 6B resulting from two non-uniform exposures centred on the same time, but with the one exposure twice the duration of the other. In this case the exposures are preferably representable by multiple convolutions of a uniform exposure pattern.

[0060] Case (a) above is, illustrated in FIGS. 2A and 2B, will not be considered further because it reduces to a well known solution of estimating pure time delay (ie. pure translational shift on the image), The blur parameter is not used in this solution. This solution only utilises the elapsed time or spatial separation between the two uniform exposures with equal duration.

[0061]FIGS. 3A and 3B illustrate the x′ components of the respective blur functions b₁ and b₂ resulting from two uniform exposures centred on the same time, but with the one exposure twice the duration of the other, thereby representing Case (b) above. This particular relationship between the two exposures results in the following parameters: $\left. \begin{matrix} {a_{1} = a} \\ {a_{2} = {2a}} \\ {x_{0}^{\prime} = 0} \\ {y_{0}^{\prime} = 0} \end{matrix} \right\}\quad$

[0062] Applying these parameters to Equations (14) and (15) gives the Fourier spectra: $\begin{matrix} {{G_{1}\left( {u,v} \right)} = {{F\left( {u,v} \right)} \cdot \frac{\sin \left( {2\pi \quad u^{\prime}a} \right)}{2\pi \quad u^{\prime}a}}} & (17) \\ {{G_{2}\left( {u,v} \right)} = {{{F\left( {u,v} \right)} \cdot \frac{\sin \left( {4\pi \quad u^{\prime}a} \right)}{4\pi \quad u^{\prime}a}} + {N\left( {u,v} \right)}}} & (18) \end{matrix}$

[0063] Using a trigonometric expansion, a relationship between blurred image transforms G₁ and G₂ can be found as: $\begin{matrix} {{G_{2}\left( {u,v} \right)} = {{{F\left( {u,v} \right)} \cdot \frac{2{\sin \left( {2\pi \quad u^{\prime}a} \right)}{\cos \left( {2\pi \quad u^{\prime}a} \right)}}{4\pi \quad u^{\prime}a}} + {N\left( {u,v} \right)}}} & (19) \end{matrix}$

G ₂(u,v)=G ₁(u,v).cos(2πu′α)+N(u,v)   (20)

[0064] The difference between blurred images g₁ and g₂ can be measured using total modulus-squared spectral “deviation” t, integrated over a representative region of the spatial frequency. The modulus-squared spectral “deviation” t can be written as a function of the blur parameter α;

t(α)=∫∫_(R) |N(u,v)|² dudv=∫∫ _(R) |G ₂(u,v)−G ₁(u,v).cos(2πu′α)|² dudv.   (21)

[0065] The blur estimation problem can now be expressed in terms of a least-squares estimation, in which the image “discrepancy” t(α) is minimised with respect to the blur parameter α. The stationary condition at a minimum is simply

∂t/∂α=0.   (22)

[0066] However, Equation (21) can be further expanded as: $\begin{matrix} {{t(a)} = {\int_{\quad}^{\quad}{\int_{R}{\left\{ {{G_{2}}^{2} + {{G_{1}}^{2}{\cos^{2}\left( {2\pi \quad u^{\prime}a} \right)}} - \quad {{\cos \left( {2\pi \quad u^{\prime}a} \right)}\left( {{G_{1}G_{2}^{*}} + {G_{1}^{*}G_{2}}} \right)}} \right\} \quad {x}{\quad{{v}.}}}}}} & (23) \\ {{t(a)} = {\int_{\quad}^{\quad}{\int_{R}{\left\{ {{G_{2}}^{2} + {\frac{{G_{1}}^{2}}{2}\left( {1 + {\cos \left( {4\pi \quad u^{\prime}a} \right)}} \right)} - {\cos \left( {2\pi \quad u^{\prime}a} \right)\left( {{G_{1}G_{2}^{*}} + {G_{1}^{*}G_{2}}} \right)}} \right\} \quad {x}{\quad{{v}.}}}}}} & (24) \end{matrix}$

[0067] The blurred images g₁ and g₂ are real even functions, resulting in the Fourier spectra thereof G₁ and G₂ having Hermitian symmetry. Hence, the following apply: $\begin{matrix} \left. \begin{matrix} {{{G_{2}} = {real}},{even}} \\ {{{G_{2}} = {real}},{even}} \\ {{\left( {{G_{1}G_{2}^{*}} + {G_{1}^{*}G_{2}}} \right) = {real}},{even}} \end{matrix} \right\} & (25) \end{matrix}$

[0068] Equation (24) can be expressed in terms of a complex exponential, because the imaginary sine components identically sum to zero when the symmetry conditions of Equation (25) apply. $\begin{matrix} {\left. {{t(a)} = {{\int{\int_{R}\left\{ {{G_{2}}^{2} + \frac{{G_{1}}^{2}}{2} + {\frac{{G_{1}}^{2}}{2}{\exp \left( {4\pi \quad u^{\prime}a} \right)}}} \right)}} - {{\exp \left( {2\pi \quad u^{\prime}a} \right)}\left( {{G_{1}G_{2}^{*}} + {G_{1}^{*}G_{2}}} \right)}}} \right\} \quad {u}\quad {{v}.}} & (26) \end{matrix}$

[0069] Applying the coordinate transforms of Equation (11), the transformation can be rewritten as:

u′α=uαcosθ+vαsinθ  (27)

[0070] The image “discrepancy” t in Equation (26) is a function of two variables, and therefore t(α, θ) must be minimised with respect to both parameters, α and θ. Since α and θ have a polar structure, such allows the introduction of two new parameters X and Y with a rectilinear form as follows: $\begin{matrix} \left. \begin{matrix} {{a\quad \cos \quad \theta} = X} \\ {{a\quad \sin \quad \theta} = Y} \end{matrix} \right\} & (28) \end{matrix}$

[0071] Applying Equation (28) to Equation (26) results in the following: $\begin{matrix} {\quad {{t\left( {a,\theta} \right)} = {ɛ\left( {X,Y} \right)}}\quad} & (29) \\ {= {{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\left\lbrack {{G_{2}}^{2} + \frac{{G_{1}}^{2}}{2}} \right\rbrack \quad {u}\quad {v}}}} + \quad \quad {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\frac{{G_{1}}^{2}}{2}{\exp \left( {{- 4}\pi \quad {i\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}{u}{v}}}} - \quad \quad {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\left( {{G_{1}G_{2}^{*}} + {G_{1}^{*}G_{2}}} \right){\exp \left( {{- 2}\pi \quad {i\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}{u}{v}}}}}} & (30) \end{matrix}$

[0072] The first term in Equation (30) is a constant term related to the total “energy” in the two blurred image signals g₁ and g₂, which may be ignored in order to minimise the image “discrepancy” t. The second term is the (two-dimensional) auto-correlation of blurred image g₁ which has been scaled by a factor of one half, while it's coordinates have been scaled by two. The third term is the cross-correlation of the blurred images g₁ and g₂ plus the corresponding 180 degrees rotated form.

[0073] Therefore, in the preferred embodiment, the image “discrepancy” t function can be minimised with respect to X and Y by calculating the image “discrepancy” t for all values of X and Y using the Fast Fourier Transform, which is the most efficient way to calculate large kernel correlations If only a small blur is expected, then the correlation calculations can be limited to a small zone, and advantage can be taken of computational efficiencies available. Additional efficiencies are possible using the symmetries apparent in Equation (30).

[0074] In another implementation, the exposures or blur functions are chosen to be uniform, to have the same start times, but blur function b₂ has twice the duration of blur function b₁. FIGS. 4A and 4B illustrate the x′ component of the respective blur functions b₁ and b₂ This corresponds to case (c) above. This particular relationship between the two exposures results in the following parameters: $\begin{matrix} \left. \begin{matrix} {a_{1} = a} \\ {a_{2} = {2a}} \\ {x_{0}^{\prime} = a} \\ {y_{0}^{\prime} = 0} \end{matrix} \right\} & (31) \end{matrix}$

[0075] It is noted that these exposures or blur functions b₁ and b₂ can be synthesised from Case (a) discussed above. The first exposure is just blur function b₁, whereas the first and second exposures of FIGS. 2A and 2B can be averaged to synthesise blur function b₂ as shown in FIG. 4B.

[0076] Applying these parameters to Equations (14) and (15) gives the Fourier spectra: $\begin{matrix} {{G_{1}\left( {u,v} \right)} = {{F\left( {u,v} \right)} \cdot \frac{\sin \left( {2\pi \quad u^{\prime}a} \right)}{2\pi \quad u^{\prime}a}}} & (32) \\ {{G_{2}\left( {u,v} \right)} = {{{F\left( {u,v} \right)} \cdot \frac{\sin \quad \left( {4\pi \quad u^{\prime}a} \right)}{4\pi \quad u^{\prime}a} \cdot {\exp \left( {{- 2}\pi \quad u^{\prime}a} \right)}} + {N\left( {u,v} \right)}}} & (33) \end{matrix}$

[0077] From Equations (32) and (33), the noise tern N(u,v) may be expressed as follows:

N(u,v)=G ₂(u,v)−G ₁(u,v).cos(2πu′α).exp(−2πiu′α)   (34)

[0078] Again, the modulus-squared error or “deviation” t can be written as a function of the blur parameter α: $\begin{matrix} {{t(a)} = {{\int{\int_{R}{{{N\left( {u,v} \right)}}^{2}{u}{v}}}} = {\int{\int_{R}{{{{G_{2}\left( {u,v} \right)} - {{G_{1}\left( {u,v} \right)} \cdot {\cos \left( {2\pi \quad u^{\prime}a} \right)} \cdot {\exp \left( {{- 2}\pi \quad {iu}^{\prime}a} \right)}}}}^{2}{u}{{v}.}}}}}} & (35) \end{matrix}$

[0079] However, Equation (35) can be further expanded as:. $\begin{matrix} {{t(a)} = {{\int{\int_{R}{\left\{ {{G_{2}}^{2} + {{G_{1}}^{2}{\cos^{2}\left( {2\pi \quad u^{\prime}a} \right)}}} \right\} {u}{v}}}} - {\int{\int_{R}{{\left( {{G_{2}^{*}{G_{1} \cdot {\exp \left( {{- 2}\pi \quad i\quad u^{\prime}a} \right)}}} + {G_{1}^{*}{G_{2} \cdot {\exp \left( {2\pi \quad i\quad u^{\prime}a} \right)}}}} \right) \cdot {\cos \left( {2\pi \quad u^{\prime}a} \right)}}{u}\quad {v}}}}}} & (36) \end{matrix}$

$\begin{matrix} \begin{matrix} {\quad {= \quad {{\int{\int_{R}{\left\{ {{G_{2}}^{2} + \frac{{G_{1}}^{2}}{2}} \right\} {u}{v}}}} +}}} \\ {\quad {{\frac{1}{2}{\int{\int_{R}{{G_{1}}^{2}{\cos \left( {4\pi \quad u^{\prime}a} \right)}{u}{v}}}}} -}} \\ {\quad {{\frac{1}{2}{\int{\int_{R}{\left( {{G_{2}^{*}G_{1}} + {G_{1}^{*}G_{2}}} \right){u}{v}}}}} -}} \\ {\quad {\frac{1}{2}{\int{\int_{R}{\left\{ {{G_{2}^{*}{G_{1} \cdot {\exp \left( {{- 4}\pi \quad {iu}^{\prime}a} \right)}}} + {G_{1}^{*}{G_{2} \cdot {\exp \left( {4\pi \quad {iu}^{\prime}a} \right)}}}} \right\} {u}{v}}}}}} \end{matrix} & (37) \end{matrix}$

[0080] Applying Equation (28) to Equation (37) results in the following: $\begin{matrix} \begin{matrix} {{t\left( {a,\theta} \right)} = \quad {{ɛ\left( {X,Y} \right)} =}} \\ {\quad {{\int{\int_{R}{\left\{ {{G_{2\quad}}^{2} + \frac{{G_{1\quad}}^{2}}{2}} \right\} \quad {u}\quad {v}}}} -}} \\ {\quad {{\frac{1}{2}{\int{\int_{R}{\left\{ {{G_{2}^{*}G_{1}} + {G_{1}^{*}G_{2}}} \right\} {u}{v}}}}} +}} \\ {\quad {{\frac{1}{2}{\int{\int_{R}{{G_{1}}^{2}{\cos \left( {4{\pi \quad\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}{u}{v}}}}} -}} \\ {\quad {\int{\int_{R}\left\{ {{G_{2}^{*}{G_{1} \cdot {\exp \left( {{- 4}\pi \quad {i\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}}} +} \right.}}} \\ {{\quad \left. {G_{1}^{*\quad}{G_{2} \cdot {\exp \left( {4\pi \quad {i\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}}} \right\}}{u}{{v}.}} \end{matrix} & (38) \end{matrix}$

[0081] Because the blurred images g₁ and g₂ are both real functions, the following properties exist:

G* _(n)(u,v)=G _(n)(−u,−v)

|G _(n)(−u,−v)|=|G _(n)(u,v)|  (39)

[0082] The full (or at least symmetrical) limits in frequency space allows the last two terms of Equation (38) to be joined. $\begin{matrix} \begin{matrix} {{ɛ\left( {X,Y} \right)} = \quad {{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\left\{ {{{G_{2\quad}\left( {u,v} \right)}}^{2} + {\frac{1}{2}\quad {{G_{1\quad}\left( {u,v} \right)}}^{2}}} \right\} {u}\quad {v}}}} -}} \\ {\quad {\frac{1}{2}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\left\{ {{{G_{2\quad}^{*}\left( {u,v} \right)}{G_{1}\left( {u,v} \right)}} + {{G_{1}^{*\quad}\left( {u,v} \right)}{G_{2}\left( {u,v} \right)}}} \right\} {u}{{v} \cdot +}}}}}} \\ {\quad {{\frac{1}{2}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{{G_{1\quad}\left( {u,v} \right)}}^{2}{\exp \left( {4{\pi \quad\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}{u}{v}}}}} -}} \\ {\quad {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{G_{1}\left( {{- u},{- v}} \right)}{{G_{2}\left( {u,v} \right)} \cdot {\exp \left( {4\pi \quad {i\quad\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}}{u}{v}}}}} \end{matrix} & (40) \end{matrix}$

[0083] Only the last two terms of Equation (40) are functions of X and Y. These are therefore the only terms determining where the minimum of the deviation function ε(X, Y) is located, In particular, the last two terms can be recognised as having the form of auto and cross-correlation functions). $\begin{matrix} \begin{matrix} {\quad {{\frac{1}{2}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{{G_{1\quad}\left( {u,v} \right)}}^{2}{\exp \left( {4{\pi \quad\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}{u}{v}}}}} -}} \\ {\quad {{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{G_{1}\left( {{- u},{- v}} \right)}{{G_{2}\left( {u,v} \right)} \cdot {\exp \left( {4\pi \quad {i\quad\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}}{u}{v}}}} =}} \\ {\quad {\frac{1}{2}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{G_{1}\left( {{- u},{- v}} \right)} \cdot \left\{ {{G_{1}\left( {{- u},{- v}} \right)} - {2{G_{2}\left( {u,v} \right)}}} \right\} \cdot}}}}} \\ {\quad {{\exp \left( {4\pi \quad {i\quad\left\lbrack {{uX} + {vY}} \right\rbrack}} \right)}{u}{v}}} \end{matrix} & (41) \end{matrix}$

[0084] Equation (41) represents the convolution of blur image g₁(−x,−y) with the difference of (g₁−x,−y) and 2g₂(x,y) evaluated at coordinates (X′,Y′), where $\begin{matrix} \left. \begin{matrix} {X^{\prime} = {2X}} \\ {Y^{\prime} = {2Y}} \end{matrix} \right\} & (42) \end{matrix}$

[0085] Blur functions having such a result are illustrated in FIGS. 7A and 7B.

[0086] A person skilled in the art would recognise that many variations of the above implementations exist. For example, the blur function b₂ can be chosen such that its duration comprises multiples of the duration of blur function b₁, wherein the multiples are greater than two which correspond with the implementations described above.

[0087] By considering implementations with higher durations for blur function b₂ relative to the blur function b₁, a sequence of auto-correlations and cross-correlations are evaluated with various integer resealing factors. However, the overall method is similar in that a direct calculation of the minimisation is possible using fast correlation techniques.

[0088] In order to illustrate the above, yet another implementation is described. FIGS. 5A and 5B illustrate the x′ components of the respective blur functions b₁ and b₂ resulting from two uniform exposures centred on the same time, but with the one exposure three times the duration of the other. An alternative implementation with the same start time can be analysed in a very similar fashion and will not be explicitly derived.

[0089] This particular relationship between the two exposures results in the following parameters: $\begin{matrix} \left. \begin{matrix} {a_{1} = a} \\ {a_{2} = {3a}} \\ {x_{0}^{\prime} = 0} \\ {y_{0}^{\prime} = 0} \end{matrix} \right\} & (43) \end{matrix}$

[0090] Applying the parameters of Equations (43) to Equations (14) and (15) gives the Fourier spectra. $\begin{matrix} {{G_{1}\left( {u,v} \right)} = {{F\left( {u,v} \right)} \cdot \frac{\sin \left( {2\pi \quad u^{\prime}a} \right)}{2\pi \quad u^{\prime}a}}} & (44) \\ {{G_{2}\left( {u,v} \right)} = {{{F\left( {u,v} \right)} \cdot \frac{\sin \left( {6\pi \quad u^{\prime}a} \right)}{6\pi \quad u^{\prime}a}} + {N\left( {u,v} \right)}}} & (45) \end{matrix}$

[0091] Using the following trigonometric expansion:

sin(6πu′α)=└4cos²(2πu′α)−1┘sin(2πu′α)=[2cos(4πu′α)+1]sin(2πu′α).   (46)

[0092] the following total modulus-squared spectral “deviation” t, integrated over a representative region of the spatial frequency, must be minimised: $\begin{matrix} {{t(a)} = {{\int{\int_{R}{{{N\left( {u,v} \right)}}^{2}\quad {u}\quad {v}}}} = {\int{\int_{R}{{{{G_{2}\left( {u,v} \right)} - {{G_{1}\left( {u,v} \right)} \cdot {\cos \left( {2\pi \quad u^{\prime}a} \right)}}}}^{2}{u}{{v}.}}}}}} & (47) \end{matrix}$

[0093] Expanding Equation (47) gives: $\begin{matrix} {{t(a)} = {\int{\int_{R}{\left\{ {{G_{2}}^{2} + \frac{\left\lbrack {{G_{1}G_{2}^{*}} + {G_{2}G_{1}^{*}}} \right\rbrack \left\lbrack {{2{\cos \left( {4\pi \quad u^{\prime}a} \right)}} + 1} \right\rbrack}{3} + \frac{\left. \left. {{G_{1}}^{2}\left\lbrack {{2\cos \quad \left( {8\pi \quad u^{\prime}a} \right)} + {2{\cos \left( {4\pi \quad u^{\prime}a} \right)}} + 3} \right.} \right) \right\rbrack}{9}} \right\} {u}{v}}}}} & (48) \end{matrix}$

[0094] Thus, by examining each of the terms above, the blur parameter can be directly estimated, in a manner similar to the previous implementations. Equation (48) includes two cross-correlations rescaled by factor two and two auto-correlations rescaled by factors four and two respectively.

[0095] When blur functions are considered with the duration of one of the blur functions a larger integer value of that of the other, the number of rescaled auto and cross-correlations to be evaluated also increase, but otherwise similar relationships exist.

[0096] Non-uniform exposures can similarly be used. FIGS. 7A and 7B illustrate yet another implementation wherein the x′ components of the respective blur functions b₁ and b₂ resulting from two non-uniform exposures centred on the same time, but with the one exposure twice the duration of the other. An alternative implementation with the same start time can be analysed in a very similar fashion and will therefore not be explicitly derived.

[0097] The typical non-uniform exposure pattern is derived from just one convolution. The method is readily extended to multiple convolutions.

[0098] The Fourier spectra in this implementation is as follows: $\begin{matrix} {{G_{1}\left( {u,v} \right)} = {{F\left( {u,v} \right)} \cdot \left\lbrack \frac{\sin \left( {2\pi \quad u^{\prime}a} \right)}{2\pi \quad u^{\prime}a} \right\rbrack^{m}}} & (49) \\ {{G_{2}\left( {u,v} \right)} = {{{F\left( {u,v} \right)} \cdot \left\lbrack \frac{\sin \left( {4\pi \quad u^{\prime}a} \right)}{4\pi \quad u^{\prime}a} \right\rbrack^{m}} + {N\left( {u,v} \right)}}} & (50) \end{matrix}$

[0099] wherein the integer value m represents the number of times a uniform exposure pattern has to be convolved to produce the required non-uniform exposure pattern. The implementation illustrated in FIGS. 6A and 6B was derived using m=2.

[0100] Minimisation needs to be applied to the following total modulus-squared spectral “deviation” t: $\begin{matrix} {{t(a)} = {{\int{\int_{R}{{{N\left( {u,v} \right)}}^{2}\quad {u}\quad {v}}}} = {\int{\int_{R}{{{{G_{2}\left( {u,v} \right)} - {{G_{1}\left( {u,v} \right)} \cdot {\cos^{m}\left( {2\pi \quad u^{\prime}a} \right)}}}}^{2}{u}{{v}.}}}}}} & (51) \end{matrix}$

[0101] Using similar argument to those in previous implementations, Equation (51) will, in general, expand into a series of auto and cross-correlation with various integer rescaling factors: $\begin{matrix} {{t(a)} = {{\int{\int_{R}{\left\{ {{G_{2}}^{2} + {{G_{1}}^{2}{\cos^{2m}\left( {2\pi \quad u^{\prime}a} \right)}}} \right\} {u}{v}}}} - {\int{\int_{R}{\left( {{G_{2}^{*}G_{1}} + {G_{1}^{*}G_{2}}} \right){\cos^{m}\left( {2\pi \quad u^{\prime}a} \right)}{u}{{v}.}}}}}} & (52) \end{matrix}$

[0102] Using m=2 gives: $\begin{matrix} {{t(a)} = {{\int{\int_{R}{\left\{ {{G_{2}}^{2} + \frac{{G_{1}}^{2}\left\lbrack {{\cos \left( {8\pi \quad u^{\prime}a} \right)} + {4{\cos \left( {4\pi \quad u^{\prime}a} \right)}} + 3} \right\rbrack}{8}} \right\} \quad {u}{v}}}} - {\int{\int_{R}{\left\{ \frac{\left( {{G_{2}^{*}G_{1}} + {G_{1}^{*}G_{2}}} \right)\left\lbrack {{\cos \left( {4\pi \quad u^{\prime}a} \right)} + 1} \right\rbrack}{2} \right\} \quad {u}{{v}.}}}}}} & (53) \end{matrix}$

[0103] Specifically in this the case with m=2, from Equation (53), the cross-correlation is rescaled by a factor of two, and the auto-correlation rescaled by factors of two and four.

[0104] The foregoing provide direct computational methods for estimating blur parameters over an infinite plane. For general implementation, the algorithms are desirably modified for use with finite and discrete datasets typical of digitally sample images. The computation may be modified to work over regions, typically rectangular blocks of pixels, which are significantly larger than the blur parameter sought to be estimated, yet small enough so that the blur parameter remains substantially constant over the region. Also, edge effects which are not present in the infinite plane, may be mitigated by suitable image padding and windowing methods. These constraints are typical of other correlation-based image analysis techniques and consequently need not be discussed further herein.

[0105] It follows from the foregoing that where two images are captured in direct association, either overlapping, immediately adjacent or closely adjacent with respect to capture time, and assuming linear motion over each area of interest, the blur in either image may be determined.

[0106] The present inventors have realised that where more than one image can be captured within a field or frame period, motion blur may therefore be estimated for at least that field or frame. Thus, motion vectors may be obtained from multiple sub-field or sub-frame images, thereby improving motion vector accuracy and associating such vectors with a single (traditional) field or frame image, as opposed to a pair of such traditional images. In this fashion, the motion vector obtained much more accurately represents the motion that occurred during the capture of the respective image, as opposed to the motion that occurred between capture of adjacent traditional field/frame images.

[0107]FIG. 8 illustrates a block diagram of apparatus 9 for estimating the blur parameters of blurred images g₁ and g₂. The apparatus 9 has one or more image sensors 10 for capturing the blurred images g₁ and g₂, a plurality of correlators 20 and 30 for performing auto-correlation of the blurred image g₁ and cross-correlation between the two images g₁ and g₂ respectively, and an error function calculator 40 for evaluating an error function t over all possible displacements using the results from the correlators 20 and 30. The apparatus 9 further includes an extreme locater 50 for finding the displacement with the minimum value for the error function t.

[0108] In a first arrangement, two image sensors 10 are used for capturing the blurred images g₁ and g₂ respectively. The image sensors 10 are arranged to view the matching co-ordinated of the image signal f(x,y). Their respective spatial extents 2a₁ and 2a₂, are controlled by controlling their relative exposure times. The offset (x₀,y₀) is controlled by controlling the time of exposure.

[0109] In an alternative arrangement, a single image sensor 10 is used, implemented with CMOS technology. The operation of this image sensor 10, will be further explained with references to FIGS. 9 and 10. FIG. 9 shows a circuit layout of a part 12 of the image sensor 10, the part 12 being arranged to capture a single pixel of the digital image signal f(x,y) by means of a pixel cell 60.

[0110] The pixel cell 60 is formed of a photodiode 63 which acts as an image pixel sensor and which connects to a transistor 64 to discharge a parasitic capacitor Cp according to the intensity of illumination falling upon the photodiode 63. The parasitic capacitor Cp may be formed by a floating diffusion. A transistor switch 62, operated by a reset signal ‘res’, acts to reset the capacitor Cp by applying a supply rail potential to the capacitor Cp. A signal “TX” is applied to the parasitic capacitor Cp enabling the capacitor Cp to discharge through the operation of the photodiode 63. It will be appreciated therefore that the sensor 10 operates according to negative logic principles where the charge on the capacitor Cp is the inverse of the light intensity-duration function applied to the photodiode 63. A select signal ‘sel’ operates a transistor switch 65 a which, together with a source-follower transistor 65 b, couples the voltage on the parasitic capacitor Cp to a pixel data bus 61. The duration that the signal ‘TX’ is applied is usually called the exposure time, and the charge of the parasitic capacitor Cp is the value of the pixel cell 60. A number of the pixel cells 60 may be connected to the pixel data bus 61.

[0111] In order to provide a sequence of output pixel values of an image, a switching arrangement 66 is provided to couple such values to an output 67 of the part 12. The sequence may, for example, be a raster sequence.

[0112] Signals “N1” and “N2” are applied to transistor switches SW1 and SW3, causing them to conduct, thereby providing for noise charge values to be stored on capacitors C1 and C3 respectively. Such noise values are representative of circuit noise and are available on the pixel data bus 61 when the ‘sel’ signal of each of the cells 60 connected to the bus 61 are all disabled or riot selected.

[0113] Signals ‘S1’ and ‘S2’ are applied to turn ON switches SW0 or SW2 respectively, so that capacitors C0 and C2 are selectively charged according to the pixel value as present on the pixel bus 61.

[0114] Signals ‘HST0’ and ‘HST1’ are applied to turn ON switch pairs SW4 and SW5, and SW6 and SW7 respectively. The switches SW5 and SW7 act to couple the noise values on the capacitors C1 and C3 respectively to a buffer ‘bufn’, while the pixel values present on the capacitors C0 and C2 are coupled via operation of the switches SW4 and SW6 respectively to a buffer ‘bufs’. A differential amplifier ‘diffamp’, connected to the buffers ‘bufn’ and ‘bufs’, finds the difference between the two signals to output a signal indicative of the light fallen upon the photodiode 63.

[0115] By forming the image sensor 10 as a matrix of pixel cells 60 formed in rows (lines) and columns, overlapped double sampling of an image that gives rise to blur functions illustrated in FIGS. 4A and 4B, can be achieved using the circuit 12 of FIG. 9 by applying to the circuit 12 a signal sequence as shown in FIG. 10.

[0116] When a signal ‘sel0’ is asserted, all the pixel cells 60 in row 0 of the matrix are enabled, and each drive a corresponding pixel data bus 61 in the corresponding column.

[0117] The signal ‘res’ is then asserted, causing all the pixel cells 60 in line 0 to be reset, and leaving each cell 60 driving a noise value on the corresponding pixel data bus 61.

[0118] As the signal ‘res’ is de-asserted, the signals ‘N1’ and ‘N2’ are then asserted to latch the noise values into capacitors C1 and C3. The signal ‘TX’ is then asserted for a period ‘Tex’. During the period ‘Tex’, all the pixel cells 60 in line 0 discharge their corresponding parasitic capacitors Cp according to the light intensity on line 0. The signal ‘S1’ is asserted in the middle of the exposure time to store the pixel values at that time in the respective capacitors C0. At the end of the exposure time ‘Tex’, the pixel values at that time are stored in capacitors C2 by asserting signal ‘S2’. The signal ‘HST0’ is then asserted to switch on SW4 and SW5 to find the true values of the pixels during the first half of exposure time ‘Tex’ The signal ‘HST1’ is asserted to switch on SW6 and SW7 to find the true values of the pixels during the second half of exposure time ‘Tex’. The signals ‘HST0’ and ‘HST1’ are asserted progressively along line 0 for each pixel to output a sequence of pixel values for the line. This is repeated until all the pixels in line 0 are read.

[0119] Such a mode of operation results ill a pixel sequence as follows, for n pixels in the line:

Pixel_(—) 1_half, Pixel _(—) 1_full, Pixel _(—) 2_half, Pixel _(—) 2_full, . . . Pixel_n_full.

[0120] A next line (line 1) is selected by asserting ‘sel1’, and the above is repeated.

[0121] Alternatively, the mode of operation may be altered to provide the following sequence:

Pixel_(—) 1_half, Pixel- 2_half . . . Pixel_n_half, Pixel 1_full, Pixel 2_full, . . . Pixel_n_full.

[0122] It will be apparent from the forgoing that where S1 is activated at the middle of TX and S2 at the end, the first image obtained by virtue of S1, for a stationary target which presents no blur, will have half the intensity of the second image obtained at S2. As such, any image derived at S1 will include, for all intents and purposes, the same components of the image obtained at S2. This is to be contrasted with prior art arrangements where single frames or fields are captured one after the other in which case the entire sensor reset and newly illuminated.

[0123] As is apparent from the signal sequence shown in FIG. 10, and in particular from the select signals sel0 and sel1, there is a delay between capture of pixel values of line 0, which corresponds to a first row, and capture of pixel values of each of the subsequent rows. If the motion is substantially horizontal, then the method described above may be employed without any modifications. As it is assumed that the motion is lineal and uniform, each line is subjected to the same blur function b₁ and b₂. Even though the

[0124] The circuit 12 of FIG. 9 is arranged to provide two images g₁ and g₂ with the same start time. In order to capture two overlapping images g₁ and g₂ with the different start times, such as those shown in FIGS. 3A and 3B, or 5A and 5B, minor modifications to the circuit 12 is needed, in that the switching arrangement 66 has to be expanded to store three values, as would be apparent to those skilled in the art from the above description.

[0125]FIG. 11 shows one implementation of a circuit 69 for use as part of the correlator 20 or the correlator 30. In this implementation, the circuit 69 has registers 70 to 73 for holding the pixel data of a first image p to be correlated and one cyclic barrel shifter 74 to 77 for each row. The cyclic barrel shifters 74 to 77 rotate the pixel data to perform the convolution. The circuit 69 also has one cyclic barrel shifter 78 to 81 for each column to rotate the pixel data from the row barrel shifters 74 to 77. The barrel shifters 78 to 81 output to corresponding groups of multipliers 82 for multiplying the rearranged pixel data with pixel data from another image source q, and an adder 83 for adding the products from the multipliers 82 together. When the circuit 69 is used as the auto-correlator 20 of FIG. 8, the input images p and q are derived from the same input image source. Although not shown in FIG. 11, the q input may be deposited into registers in a manner akin to the p input, thereby enabling correction for any timing issues.

[0126] The circuit 69 commences operation by shifting into the registers 70 to 73 the pixel data from the image p. After the whole image p is shifted in, the barrel shifters 74 to 77 are configured to rearrange the pixel data of image p to calculate various correlation values. In the situation where the barrel shifters 74 to 77 are not shifting its input p, the correlator calculates (p∘q)(0,0). With the row barrel shifters 74 to 77 shifted one position to the right, and the column barrel shifters 78 to S1 not shifted, the circuit 69 calculates (p∘q)(0,1), which is the same as (p∘q)(0,N−1), with N being the number of rows in the images p and q. When the row shifters 74 to 77 are not shifting their input p, and the column shifters 78 to 81 are shifting their input q by k positions to the right, then the circuit 69 calculates both (p∘q)(k,0) and (p∘q)(M−k,0), with M being the number of column in the images p and q.

[0127] In terms of hardware, for images of dimension M×N pixel cells 60, this implementation of the circuit 69 requires:

[0128] 2×M×N registers to hold all the pixel values of the two images p and q;

[0129] M N-input row barrel shifters to shift the pixel values in the rows;

[0130] N M-input column barrel shifters to shift the outputs from the row barrel shifters;

[0131] M×N multipliers to multiply the rearranged pixel values of one image p with pixel values from the other image q;

[0132] M×(N−1) 2-input adders (or a single M×N input adder) to add the products of the multipliers; and

[0133] barrel shifter control logic.

[0134]FIG. 12 shows a second implementation of a correlator circuit 85. This implementation uses Fourier Transforms to calculate correlations between images c and d. Using the correlation theorem,

c(x,y)∘d(x,y)⇄C*(u,v)D(u,v)   (54)

[0135] the cross-correlation of the two images c and d can be calculated by inputting pixels from the images c and d into respective row buffers 86. A Fourier transform 87 is then performed on both images c and d to obtain their Fourier coefficients C and D. The coefficients are multiplied 88 on a one by one basis and an inverse Fourier transform 89 is performed on the output of the multiplier 88. The results of the inverse transform 89 comprise cross correlation coefficients that are retained in a result buffer. Again, for an autocorrelator implementation, the inputs c and d are connected to the same image input.

[0136] The implementation of the 1-dimensional Fourier transform and inverse Fourier transform blocks are well known to persons in the art.

[0137] In terms of hardware, to correlate two images c and d of dimension M×N, the arrangement 85 of FIG. 12 requires:

[0138] two N-pixel buffers to store one row of the incoming data;

[0139] two blocks of logic performing 1-dimensional Fourier transform on the row of N pixels. The amount of logic required may be determined from the value of N,

[0140] two blocks of logic performing 1-dimensional Fourier transform on the row of M coefficients. The amount of logic required may be determined from the value of M;

[0141] three transposing memories to hold M×N pixel values/coefficients;

[0142] three memory blocks to hold M×N Fourier coefficients, two for the input of the multiplier and one for the product;

[0143] one block of logic performing 1dimensional inverse Fourier transform on M coefficients;

[0144] one block of logic performing 1dimensional inverse Fourier transform on N coefficients; and

[0145] one N-entry buffer to hold one row of the correlation coefficients.

[0146] The error function calculator 40 of FIG. 8 receives the correlation results from the correlators 20 and 30 and calculates the error values based on the foregoing equations derived above. The error calculator 40 may be formed in hardware by an appropriate combination of adders and multipliers and associated logic, or alternatively implemented in software.

[0147] The evaluation of the error function for every point in the domain of the correlation function provides identification of two minima in the error function, one opposite to the other with respect to the origin. Either one of these minima can indicate the displacement (blur) between the two images. To find these minima, all the error function values are searched for the smallest error function value, and the displacement that result in the minima are recorded This takes M×N clock cycles, where M is the number of rows (lines) in the image and N is the number of columns in the image.

[0148] However, to increase the accuracy in the estimation, the true minimum in sub-pixel precision can be found. A typical method used is curve fitting, which is a method well known to people skilled in the art.

[0149] Before the implementation of such an extreme locater is considered, the theory behind the extreme locator will be examined. Consider for example a (2n+1)×(2n+1) neighbourhood around pixel (x,y) wherein the neighbourhood is defined by all the pixels in a square with corners at (x−n,y−n), (x−n,y+n), (x+n,y+n) and (x+n,y−n). Typically n=1 or 2. A quadratic surface can be fitted locally around the minimum, after which a location of a best-fit surface minimum is calculated. This is effectively interpolation of the minimum position.

[0150] A second order surface can be expressed as:

P(x,y)=α₀₀+α₁₀ x+α ₀₁ y+α ₁₁ xy+α ₂₀ x ²+α₀₂ y ²   (55)

[0151] which represents a local region with an elliptical paraboloid of arbitrary orientation and axes. A ‘least squares fit’ is applied to the function f(x,y) on a discrete grid of points: $\begin{matrix} \left. \begin{matrix} {x = {m\quad \Delta}} \\ {y = {n\quad \Delta}} \end{matrix} \right\} & (56) \end{matrix}$

[0152] expressed as: $\begin{matrix} {E = {\sum\limits_{n = {- N}}^{N}\quad {\sum\limits_{m = {- M}}^{M}\quad \left\lbrack {{f\left( {{m\quad \Delta},{n\quad \Delta}} \right)} - {P\left( {{m\quad \Delta},{n\quad \Delta}} \right)}} \right\rbrack^{2}}}} & (57) \end{matrix}$

[0153] Stationary points for all values of k and l are found by: $\begin{matrix} {\frac{\partial E}{\partial a_{kl}} = {{\sum\limits_{n = {- N}}^{N}\quad {\sum\limits_{m = {- M}}^{M}\quad {\left( {m\quad \Delta} \right)^{k}{\left( {n\quad \Delta} \right)^{l}\left\lbrack {{f\left( {{m\quad \Delta},{n\quad \Delta}}\quad \right)} - {P\left( {{m\quad \Delta},\quad {n\quad \Delta}}\quad \right)}} \right\rbrack}}}} = 0}} & (58) \end{matrix}$

[0154] Six simultaneous equations can be derived. Typically M=N=1 or 2. $\begin{matrix} {{\sum\limits_{n}\quad {\sum\limits_{m}\quad {m^{k}n^{l}f_{m,n}}}} = {\sum\limits_{n}\quad {\sum\limits_{m}{m^{k}n^{l}P_{m,n}}}}} & (59) \end{matrix}$

[0155] Equation (59) is expanded into: $\begin{matrix} {\begin{pmatrix} {\sum\limits_{n}\quad {\sum\limits_{m}f_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{mf}_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{nf}_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}f_{m,n}}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{mnf}_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{n^{2}f_{m,n}}}} \end{pmatrix} = {\begin{pmatrix} {\sum\limits_{n}\quad {\sum\limits_{m}1}} & {\sum\limits_{n}\quad {\sum\limits_{m}m}} & {\sum\limits_{n}\quad {\sum\limits_{m}n}} & {\sum\limits_{n}\quad {\sum\limits_{m}m^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}}} & {\sum\limits_{n}\quad {\sum\limits_{m}n^{2}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}m}} & {\sum\limits_{n}\quad {\sum\limits_{m}m^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}}} & {\sum\limits_{n}\quad {\sum\limits_{m}m^{3}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{2}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}n}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}}} & {\sum\limits_{n}\quad {\sum\limits_{m}n^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}n^{3}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}m^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}m^{3}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n}}} & {\sum\limits_{n}\quad {\sum\limits_{m}m^{4}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{3}n}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{3}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{mn}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{3}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n^{2}}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n^{2}}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}n^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{2}}} & {\sum\limits_{n}\quad {\sum\limits_{m}n^{3}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n^{2}}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{mn}^{3}}} & {\sum\limits_{n}\quad {\sum\limits_{m}n^{4}}} \end{pmatrix} \cdot \begin{pmatrix} a_{00} \\ a_{10} \\ a_{01} \\ a_{20} \\ a_{11} \\ a_{02} \end{pmatrix}}} & (60) \end{matrix}$

[0156] It is noted that the square matrix in Equation (60) can be greatly simplified if the chosen polynomials are orthogonal over the discrete range chosen. However, in this case they are not quite orthogonal, but all odd summations do cancel out. Therefore: $\begin{matrix} {\begin{pmatrix} {\sum\limits_{n}\quad {\sum\limits_{m}f_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{mf}_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{nf}_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}f_{m,n}}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{mnf}_{m,n}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}{n^{2}f_{m,n}}}} \end{pmatrix} = {\begin{pmatrix} {\sum\limits_{n}\quad {\sum\limits_{m}1}} & 0 & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}m^{2}}} & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}n^{2}}} \\ 0 & {\sum\limits_{n}\quad {\sum\limits_{m}m^{2}}} & 0 & 0 & 0 & 0 \\ 0 & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}n^{2}}} & 0 & 0 & 0 \\ {\sum\limits_{n}\quad {\sum\limits_{m}m^{2}}} & 0 & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}m^{4}}} & 0 & 0 \\ 0 & 0 & 0 & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n^{2}}}} & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n^{2}}}} \\ {\sum\limits_{n}\quad {\sum\limits_{m}n^{2}}} & 0 & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}{m^{2}n^{2}}}} & 0 & {\sum\limits_{n}\quad {\sum\limits_{m}n^{4}}} \end{pmatrix} \cdot \begin{pmatrix} \alpha_{00} \\ \alpha_{10} \\ \alpha_{01} \\ \alpha_{20} \\ \alpha_{11} \\ \alpha_{02} \end{pmatrix}}} & (61) \end{matrix}$

[0157] Equation (61) is further simplified using the known relationships:

A=B.C   (62)

[0158] and

B ⁻¹ .A=C   (63)

[0159] The dominant diagonal in matrix B simplifies the calculation of the matrix inversion B⁻¹.

[0160] Differentiation of Equation (64) results in: $\begin{matrix} \left. \begin{matrix} {\frac{\partial P}{\partial x} = {{a_{10} + {a_{11}y} + {2a_{20}x}} = 0}} \\ {\frac{\partial P}{\partial y} = {{a_{01} + {a_{11}x} + {2a_{02}y}} = 0}} \end{matrix} \right\} & (64) \end{matrix}$

[0161] Equation (64) can explicitly be rewritten for the location of the extreme (x₀,y₀)=(m₀Δ,n₀Δ) as; $\begin{matrix} {x_{0} = {{\frac{a_{10}\left( {{2a_{02}} - a_{11}} \right)}{a_{11}^{2} - {4a_{20}a_{02}}}\quad {and}\quad y_{0}} = \frac{a_{01}\left( {{2a_{20}} - a_{11}} \right)}{a_{11}^{2} - {4a_{20}a_{02}}}}} & (65) \end{matrix}$

[0162] For M=N=1, the components of matrix B are: $\begin{matrix} {{{\sum\limits_{n = {- 1}}^{1}\quad {\sum\limits_{m = {- 1}}^{1}\quad 1}} = 9}{{\sum\limits_{n = {- 1}}^{1}\quad {\sum\limits_{m = {- 1}}^{1}n^{2}}} = {{\sum\limits_{n = {- 1}}^{1}\quad {\sum\limits_{m = {- 1}}^{1}m^{2}}} = 6}}{{\sum\limits_{n = {- 1}}^{1}\quad {\sum\limits_{m = {- 1}}^{1}{n^{2}m^{2}}}} = 4}{{\sum\limits_{n = {- 1}}^{1}\quad {\sum\limits_{m = {- 1}}^{1}n^{4}}} = {{\sum\limits_{n = {- 1}}^{1}\quad {\sum\limits_{m = {- 1}}^{1}m^{4}}} = 6}}} & (66) \end{matrix}$

[0163] Similarly, for M=N=2 the components of matrix B are calculated as: $\begin{matrix} {{{\sum\limits_{n = {- 2}}^{2}{\sum\limits_{m = {- 2}}^{2}1}} = 25}{{\sum\limits_{n = {- 2}}^{2}{\sum\limits_{m = {- 2}}^{2}n^{2}}} = {{\sum\limits_{n = {- 2}}^{2}{\sum\limits_{m = {- 2}}^{2}m^{2}}} = 50}}{{\sum\limits_{n = {- 2}}^{2}{\sum\limits_{m = {- 2}}^{2}{n^{2}m^{2}}}} = 100}{{\sum\limits_{n = {- 2}}^{2}{\sum\limits_{m = {- 2}}^{2}n^{4}}} = {{\sum\limits_{n = {- 2}}^{2}{\sum\limits_{m = {- 2}}^{2}m^{4}}} = 170}}} & (67) \end{matrix}$

[0164] The linear summations of the sampled function (matrix A in Equation (62)) can now be calculated. $\begin{matrix} \begin{pmatrix} {\sum\limits_{n}{\sum\limits_{m}f_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{nf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{m^{2}f_{m,n}}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mnf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{n^{2}f_{m,n}}}} \end{pmatrix} & (68) \end{matrix}$

[0165] Explicitly, Equation (61) can be written as follows for the 3×3 neighbourhood (M=N=1): $\begin{matrix} {\begin{pmatrix} {\sum\limits_{n}{\sum\limits_{m}f_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{nf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{m^{2}f_{m,n}}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mnf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{n^{2}f_{m,n}}}} \end{pmatrix} = {\begin{pmatrix} 9 & 0 & 0 & 6 & 0 & 6 \\ 0 & 6 & 0 & 0 & 0 & 0 \\ 0 & 0 & 6 & 0 & 0 & 0 \\ 6 & 0 & 0 & 6 & 0 & 0 \\ 0 & 0 & 0 & 0 & 4 & 4 \\ 6 & 0 & 0 & 4 & 0 & 6 \end{pmatrix} \cdot \begin{pmatrix} a_{00} \\ a_{10} \\ a_{01} \\ a_{20} \\ a_{11} \\ a_{02} \end{pmatrix}}} & (69) \end{matrix}$

[0166] and matrix inversion of Equation (69) gives: $\begin{matrix} {\begin{pmatrix} a_{00} \\ a_{10} \\ a_{01} \\ a_{20} \\ a_{11} \\ a_{02} \end{pmatrix} = {\frac{1}{12}{\begin{pmatrix} 12 & 0 & 0 & {- 4} & 0 & {- 12} \\ 0 & 2 & 0 & 0 & 0 & 0 \\ 0 & 0 & 2 & 0 & 0 & 0 \\ {- 12} & 0 & 0 & 6 & 0 & 12 \\ 4 & 0 & 0 & 0 & 3 & {- 6} \\ {- 4} & 0 & 0 & 0 & 0 & 6 \end{pmatrix} \cdot \begin{pmatrix} {\sum\limits_{n}{\sum\limits_{m}f_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{nf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{m^{2}f_{m,n}}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mnf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{n^{2}f_{m,n}}}} \end{pmatrix}}}} & (70) \end{matrix}$

[0167] Given the foregoing, curve fitting may be used to locate the extremes of the error function. An implementation of an implementation of an extreme locater 50 operating using the curve fitting method is shown in FIG. 13.

[0168] A minimum neighbourhood locater 97 finds the smallest one of the error coefficients output from the error function calculator 40. The minimum neighbourhood locater 90 further stores the coefficients in a number of line stores 91 (which preferably holds between 3 and 5 lines). When a new minimum is located, the locator 97 writes the 3×3 or 5×5 coefficients surrounding the minimum to a Minimum Neighbourhood buffer 92.

[0169] The buffer 92 outputs to an image moment calculator 93 which calculates the following terms: $\begin{matrix} \begin{pmatrix} {\sum\limits_{n}{\sum\limits_{m}f_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{nf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{m^{2}f_{m,n}}}} \\ {\sum\limits_{n}{\sum\limits_{m}{mnf}_{m,n}}} \\ {\sum\limits_{n}{\sum\limits_{m}{n^{2}f_{m,n}}}} \end{pmatrix} & (71) \end{matrix}$

[0170] which are seen as one primary component of Equation (70).

[0171] A matrix multiplier 94 multiplies the terms of equation (71) with the known matrix coefficients derived from Equation (66) or (67), and which are stored in a matrix coefficients memory 95. The coefficients α₀₀, α₁₀, α₀₁, α₂₀, α₁₁, and α₀₂ can then be calculated using Equation (70).

[0172] A displacement calculator 96 accepts the outputs of the matrix multiplier 94 and implements Equation (39) (reproduced below) using adders, multipliers and dividers to implement the desired functions: $\begin{matrix} {{x_{0} = {{\frac{a_{10}\left( {{2a_{02}} - a_{11}} \right)}{a_{11}^{2} - {4a_{20}a_{02}}}\quad {and}\quad y_{0}} = \frac{a_{01}\left( {{2a_{20}} - a_{11}} \right)}{a_{11}^{2} - {4a_{20}a_{02}}}}}\quad} & (65) \end{matrix}$

[0173] The outputs of the displacement calculator 96 are the horizontal and vertical displacements (x₀,y₀) of the input images g₁ and g₂ of FIG. 8 in relation to each other. The horizontal and vertical displacements (x₀,y₀) are then supplied to subsequent devices as a motion vector of the block of images g₁ and g₂. The motion vector may be applied or utilized as required to perform a variety of functions, such as those traditionally associated with motion vectors.

[0174] Once the blur parameters have been estimated from the two sub-frame images, a new, de-blurred image may be generated. This will not be required for typical video image sequences, because the sub-frame blur will be much smaller than the inter-frame movement blur. However, if a still image with minimal motion blur is required, then various de-convolution methods may be used to generate such an image. Such methods can utilise the estimated blur parameters to obtain a direct solution. Alternatively, iterative methods may be used with a first iteration using the estimated blur parameters to accelerate convergence.

[0175] Accordingly, by utilizing sub-frame or sub-field sampling of an image through the arrangement of FIG. 9, it is thus possible to obtain a motion vector from the equivalent of single prior art image sample. Thus the described implementation provides for an estimation of motion blur for each traditional image capture, be it a frame or an interlaced field.

[0176] The above can be readily seen from FIGS. 14A to 14E. FIG. 14A shows a prior art video signal 100 where an image frame is captured during period 102 and output from the sensor during a period 104 prior to the next frame 102 being captured. FIG. 14B shows a similar signal 106 for an interlaced frame where a first field 108 is captured and output over a period 110. A second field 112 is captured and output over a period 114 prior to the first field of the next frame being captured.

[0177] According to an implementation, as shown in FIG. 14C, a first row of a first image 122 is captured followed by a first row of a second image 124, the second image for example corresponding to the first field 108 of FIG. 14B. The data of the two first rows 122 and 124 is output during a period 126 before the second rows 128 and 130 of the images are captured and output during the period 132. It is noted that the periods 126 and 132 are not drawn to scale as the period required to output a single row is shorter that that required to output a whole image, such as in period 104 of FIG. 14A.

[0178] Whilst FIG. 14C shows the rows of motion blur images being captured one immediately after the other, such need not always be the case. As seen in FIG. 14D, a capture sequence 134 includes the capture of a row of a first blur image 136 overlapping with the capture of a row of a second blur image 138. In FIG. 14E, a capture sequence 140 involves capturing a row of one image 142 over a period twice that of a row of another image 144.

[0179] The multiple capture ability of the described arrangement derives from the duplication of the switching arrangements 66 of FIG. 9. As a consequence, further duplication can result in further images being captured in association. Such may be useful in high speed photography of transient events where the capture time permits capturing the event, but where the time required to output buffer the image data exceeds the time available to enable use of traditional video systems.

[0180] A specific advantage afforded is that the image sensor 10 used to capture the images from which motion blur is estimated, can be implemented in a number of configurations. In one configuration, shown in FIG. 15, the image sensor 10 can be the sensor from which the image to be ultimately displayed or otherwise reproduced is obtained. There, a video camera 150 is illustrated which includes a lens 152 and a charge-coupled device sensor 154 constructed according to the arrangement of FIG. 9. The sensor 154 outputs the two blur images g₁ and g₂ to a motion blur estimation unit 156 according to the above description. The image g₂ also forms an output image of the camera 150 and is combined in a summer with motion vector metadata 164 output from the unit 156. A delay 158 such as a frame store may be used to ensure that the motion blur data is synchronised to the corresponding output image frame. The combined signal may be stored on a recording medium, such as tape or disk, for output 168 from the camera 150.

[0181] Alternatively, as shown in the digital video camera 170 of FIG. 16, the image sensor 10 can be additional to that used to form the image output. In FIG. 16, the camera 170 includes a traditional lens 180 and CCD sensor 182 for capturing images in a traditional fashion. A further image sensor 174 constructed according to the principles of FIG. 9 is provided and associated with a corresponding lens 172 for detection of image motion blur. Where desired, the camera 170 may include only a single lens (not illustrated) and associated optics for directing the image being viewed to each of the sensors 174 and 182. As seen from FIG. 16, the sensor 174 is depicted smaller than the sensor 182. In this regard, since motion blur is generally regional within an image, rather than randomised on a pixel-by-pixel basis, a lower resolution sensor may be used. Such facilitates optimising the computational complexity of the motion estimation unit 176 by simplifying the correlations and transforms where appropriate. A synchronisation unit 184 is provided to ensure the appropriate motion vector metadata 178 is matched with the corresponding image output from the sensor 182. Other components of the camera 170 perform corresponding functions to those of FIG. 15.

[0182] The blur image processing methods described above and schematically illustrated in FIG. 8 may alternatively be practiced using a conventional general-purpose computer system 200, such as that shown in FIG. 17 wherein the Fourier Transform as well as the auto-correlation and cross-correlation calculations, error function calculation and extreme location may be implemented as software, such as an application program executing within the computer system 200. In particular, those calculations are effected by instructions in the software that are carried out by the computer, The software may be stored in a computer readable medium, including the storage devices described below. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product.

[0183] The computer system 200 comprises a computer module 202, input devices such as a keyboard 210 and mouse 212, output devices including a display device 204. The computer module 202 typically includes at least one processor unit 214, a memory unit 218, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output (I/O) interfaces including a video interface 222, and an I/O interface 216 for the keyboard 210 and mouse 212 and peripherals interface 232, to which an appropriate image sensor(s) 234 is connected to provide image pixel data to the computer module 202. A storage device 224 is provided and typically includes a hard disk drive 226 and a floppy disk drive 228. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 220 is typically provided as a nonvolatile source of data. The components 214 to 228 of the computer module 202, typically communicate via an interconnected bus 230 and in a manner which results in a conventional mode of operation of the computer system 200 known to those in the relevant art. Examples of computers on which the implementations can be practised include IBM-PC's and compatibles, San Sparcstations or alike computer systems evolved therefrom.

[0184] Typically, the application program of the preferred implementation is resident on the hard disk drive 226 and read and controlled in its execution by the processor 214. Intermediate storage of the program may be accomplished using the semiconductor memory 218, possibly in concert with the hard disk drive 228. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 220 or 228. Still further, the software can also be loaded into the computer system 200 from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infrared transmission channel between the computer module 202 and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing is merely exemplary of relevant computer readable mediums. Other computer readable mediums may be practiced without departing from the scope and spirit of the invention.

[0185] The calculation of the Fourier transforms as well as the auto-correlation and the cross-correlation may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing these functions or parts thereof. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.

[0186] The implementations described permit the estimation of motion of an object captured in an image through obtaining at least two blur images where traditionally only a single image would be obtained. The blur images are then processed to determine motion parameters across the pair of images. The motion parameters may then be associated with one of the images, usually the second of the two, two provide an image with corresponding motion parameters obtained during the generation of the (second) image. The motion parameters may then be used as desired for object identification within the image, for example. Where the images for a sequence of such images, the motion parameters permit the tracking or other monitoring of moving objects contained within the image sequence. Motion detection using an implementation is desirable because such associates one motion vector map to each frame or field, which not only is smaller in magnitude thereby affording finer resolution, but also a more accurate representation of motion.

[0187] The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.

[0188] In the context of this specification, the word “comprising” means “including principally but not necessarily solely” or “having” or “including” and not “consisting only of”. Variations of the word comprising, such as “comprise” and “comprises” have corresponding meanings. 

1. A method of estimating motion of a moving object, said method comprising the steps of: capturing at least first and second blurred images of said moving object, the blur in said images arising from at least motion blur of said object, wherein exposure durations of said first and second blurred images overlap at least partially; generating an error function, said error function being a function of said first blurred image and said second blurred image; minimising said error function; and estimating said motion of said object from said minimised error function.
 2. A method according to claim 1 , wherein said images are captured with a time difference between a start time of capture of said first blurred image and a start time of capture of said second blurred image.
 3. A method according to claim 1 , wherein a start time of capture of the first blurred image and a start time of capture of the second blurred image are concurrent.
 4. A method according to claim 2 , wherein said exposure duration of said first blurred image is substantially equal to said exposure duration of the second blurred image.
 5. A method according to claim 2 or 3 , wherein said exposure duration of said second blurred image is a predetermined integer multiple of said exposure duration of said first blurred image.
 6. A method according to claim 1 , wherein an exposure pattern (profile) of said exposure duration of at least one of said blurred images is non-uniform.
 7. A method according to claim 6 , wherein said exposure pattern (profile) comprises a triangular profile.
 8. A method of estimating motion of a moving object, said method comprising the steps of: capturing at least first and second blurred images of said moving object, the blur in said images arising from at least motion blur of said object, wherein exposure durations of said first and second blurred images overlap at least partially; generating an error function, said error function comprising a cross-correlation term being a cross-correlation between said first blurred image and said second blurred image; minimising said generated error function; and estimating said object motion from said minimised error function.
 9. A method according to claim 8 , wherein said error function further comprises an auto-correlation term being an auto-correlation of said first blurred image.
 10. Apparatus for estimating motion of a moving object, said apparatus comprising: one or more capture devices for capturing at least first and second blurred images of said moving object, the blur in said blurred images arising from at least motion blur of said object, wherein exposure durations of said blurred images overlap at least partially; means for generating an error function, said error function being a function of said first blurted image and said second blurred image; means for minimising said error function; and means for estimating said motion of said object from said minimised error function.
 11. Apparatus according to claim 10 , wherein said images are captured with a time difference between a start time of capture of said first blurred image and a start time of capture of said second blurred image.
 12. Apparatus according to claim 10 , wherein a start time of capture of the first blurred image and a start time of capture of the second blurred image are concurrent.
 13. Apparatus according to claim 11 , wherein said exposure duration of said first blurred image is substantially equal to said exposure duration of the second blurred image.
 14. Apparatus according to claim 12 or 13 , wherein said exposure duration of said second blurred image is a predetermined integer multiple of said exposure duration of said first blurred image.
 15. Apparatus according to claim 10 , wherein an exposure pattern (profile) of said exposure duration of at least one of said blurred images is non-uniform.
 16. Apparatus according to claim 15 , wherein said exposure pattern (profile) comprises a triangular profile.
 17. Apparatus for estimating motion of a moving object, said apparatus comprising: one or more capture devices for capturing at least first and second blurred images of said moving object, the blur in said blurred images arising from at least motion blur of said object, wherein exposure durations of said blurred images overlap at least partially; means for generating an error function, said error function comprising a cross-correlation term being a cross-correlation between said first blurred image and said second blurred image; means for minimising said generated error function; and means for estimating said object motion from said minimised error function.
 18. Apparatus according to claim 17 , wherein said error function further comprises an auto-correlation term being an auto-correlation of said first blurred image.
 19. Apparatus according to claim 10 wherein said means for generating, said means for minimising and said means for estimation collectively comprise a computer system incorporating a sequence of program instructions for estimating said motion using said images output from said capture device.
 20. Apparatus for estimating motion of a moving image, said apparatus comprising: an image sensor for capturing pixels of at least first and second images in which one of said images is sampled during a formation of at least one other of said images; means for comparing said images to determine at least one motion vector for association with one of said images.
 21. Apparatus according to claim 20 wherein said image sensor comprises, for each said pixel: an pixel sensor; and pixel sampling means for sampling a value of said pixel sensor at a time corresponding to each of said images.
 22. Apparatus according to claim 21 wherein said image sensor farther comprises, for each said pixel, reset means for resetting the corresponding said pixel sensor after sampling of each of said images.
 23. Apparatus according to claim 22 wherein said image sensor comprises a pixel bus configured for sequential coupling to a plurality of said pixel sampling means, and a switching arrangement associated with said pixel bus, said switching arrangement comprising a least first and second storage devices corresponding to each of said images and each being configured to store temporal value of said pixel sensor at said corresponding time, and switching means for outputting said temporal values to represent corresponding pixel values of said images of said images.
 24. Apparatus according to claim 23 wherein said pixel sensor comprises a cell capacitor, a voltage upon said cell capacitor being modified by exposure of said pixel sensor to an image to be captured, and said storage devices comprise storage capacitors.
 25. Apparatus according to claim 23 wherein said image sensor comprises plural said pixel buses and associated switching arrangements, each associated with plural of said pixel sensors and corresponding pixel sampling means thereby forming a matrix of said pixel sensors.
 26. Apparatus according to claim 20 , wherein at least said second image comprises an exposure duration greater than that of said first image, thereby providing at least said second iimage as blurred representation of said first image where a target of said images presents motion.
 27. Apparatus according to claim 26 wherein said second image is a predetermined integer multiple of an exposure duration of said first image.
 28. Apparatus according to claim 26 wherein exposure durations of said first and second images overlap.
 29. Apparatus according to claim 20 , wherein said means for comparing comprises: an auto-correlator for calculating auto-correlation of said first image; and a cross-correlator for calculating cross-correlation between said first image and said second image; and error means for minimising an error function between said auto-correlation and said cross-correlation.
 30. Apparatus according to claim 29 wherein said error means comprises an error function calculator for determining an error function value at each pixel location between said auto-correlation and said cross-correlation, and an extreme locator for thresholding said error function value at each said pixel location to provide movement parameters corresponding to each said pixel location.
 31. Apparatus according to claim 30 wherein said movement parameters comprise direction and magnitude.
 32. Apparatus according to claim 30 wherein said movement parameters comprise magnitude.
 33. An image sensor for capturing pixels of at least first and second images characterised in that at least one of said images is sampled during a formation of at least one other of said images.
 34. An image sensor according to claim 33 wherein said at least two captured images each have a corresponding start exposure time and different end exposure times.
 35. An image sensor according to claim 34 , said image sensor comprising: an array of pixel cells, each said pixel cell for storing an electrical charge equivalent of an intensity of light to which said cell is exposed; and at least two arrays of capacitors, each of said arrays of capacitors comprises capacitors electrically connected with corresponding pixel cells; wherein at each of said end exposure times said array of capacitors is arranged to store tho charge of said array of pixel cells at said end exposure time.
 36. Apparatus for capturing a moving image, said apparatus comprising: at least one image sensor according to any one of claims 20 to 35 ; means for controlling said image sensor to capture a sequence of said first and second images and for determining a motion vector relating to image blur between each pair of said first and second images in said sequence; means for combining the corresponding said motion vector with at least one of said first and second images in said sequence to output a sequence of images each having an associated motion vector.
 37. Apparatus according to claim 36 wherein said sequence of images output from said apparatus comprise a sequence of said second images.
 38. Apparatus for capturing a moving image, said apparatus comprising: a first image sensor, said first image sensor being configured according to any one of claims 20 to 35 ; means for controlling said first image sensor to capture a first sequence of said first and second images and for determining a motion vector relating to image blur between each pair of said first and second images in said sequence; a second image sensor for capturing a second sequence of images to be output from said apparatus; means for combining each said motion vector of said first sequence with a corresponding image in said second sequence to output from said apparatus a sequence of images each having an associated motion vector.
 39. Apparatus according to claim 38 wherein said images captured by said second sensor have a resolution exceeding that of those captured by said first sensor.
 40. Apparatus according to claim 38 , said apparatus comprising optical means for viewing a scene to be captured and presenting said scene to each of said sensors.
 41. Apparatus according to claim 36 further comprising synchronisation means for synchronising said motion vectors with corresponding images forming said output sequence.
 42. A computer program product including a computer readable medium incorporating a computer program estimating motion of a moving object, said computer program product comprising: code for capturing at least first and second blurred images of said moving object, the blur in said images arising from at least motion blur of said object, wherein exposure durations of said first and second blurred images overlap at least partially; code for generating an error function, said error function being a function of said first blurred image and said second blurred image; code for minimising said error function; and code for estimating said motion of said object from said minimised error function.
 43. A computer program product according to claim 42 , wherein said images are captured with a time difference between a start time of capture of said first blurred image and a start time of capture of said second blurred image.
 44. A computer program product according to claim 42 , wherein a start time of capture of the first blurred image and a start time of capture of the second blurred image are concurrent.
 45. A computer program product according to claim 43 , wherein said exposure duration of said first blurred image is substantially equal to said exposure duration of the second blurred image.
 46. A computer program product according to claim 43 or 44 , wherein said exposure duration of said second blurred image is a predetermined integer multiple of said exposure duration of said first blurred image.
 47. A computer program product according to claim 42 , wherein an exposure pattern (profile) of said exposure duration of at least one of said blurred images is non-uniform.
 48. Apparatus for estimating motion of an image from a first and a second blurred image, said apparatus being substantially as described herein with reference to any one of the embodiments as that embodiment is illustrated in the accompanying drawings. 